
#ifndef PLAN_HPP_
#define PLAN_HPP_

#include <vector>
#include <string>
#include <boost/utility.hpp>
#include "PlanEntry.hpp"

namespace fixstoker {

class Plan: private boost::noncopyable {
public:
	Plan();
	virtual ~Plan();

	void addMessageTemplate(const std::string& messageTemplate);
	void addEntry(const PlanEntry* entry);

	int numberOfMessageTemplates() const;
	const std::string messageTemplate(const int connectionIndex) const;
	const std::vector<const PlanEntry*>& entries() const;

private:
	std::vector<std::string> messageTemplates_;
	std::vector<const PlanEntry*> entries_;
};

}

#endif /* PLAN_HPP_ */
